Computer programs have benefited from performance and event monitoring in order to optimize code, provide performance information, and improve computing efficiency. Some prior art techniques may require function-specific hardware to monitor a particular activity, such as cache misses. This can be somewhat limiting and an inefficient use of hardware resources.